<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
<script>
//  promise   他是一个异步编程的解决方法  他本身是同步  promise.then()  .catch .finally 是异步
// promise里面可以存放异步的代码
// 他有2个参数  resolve  reject
// 三种状态     进行中  已成功  已失败

// resolve 的作用就是把promise的状态从进行中 变成已成功
// reject 的作用就是把promise的状态从进行中 变成已失败


// promise的原型上有 很多方法  then  catch  finally  .rece  .all

function fun(){
    return new Promise((resolve,reject)=>{
        let num = Math.random()*100
        console.log(num);
        if(num<=20){
            resolve('恭喜你,中奖了')
        }else{
            reject('很遗憾，再来一次')
        }
    })
}


// .then方法有2个回调参数 第一个参数处理成功的回调函数，第二个参数 处理失败的回调函数
// console.log(fun());
// fun().then((res)=>{
//     console.log(res,'res');
// },(err)=>{
//     console.log(err,'err');
// })


// fun().then(res=>{
//     console.log(res,'res');
// }).catch(err=>{
//     console.log(err,'err');
// }).finally(()=>{
    
//     console.log('promise 调用了');//不管promise的状态是成功还是失败，都会执行finally方法，finally的回调函数里面没有参数
// })

Promise.resolve('sdfghjkl').then(res=>{
    console.log(res,'成功');
})

Promise.reject('56789').then(res=>{
    console.log('11111');
},err=>{
    console.log(err);
})

Promise.reject('56789').then(res=>{
    console.log('11111');
}).catch(err=>{
    console.log(err);
})




 
</script>
</html>